package com.zx._10_设计模式.行为型模式.观察者模式.demo1;

/**
 * 观察者模式：
 * 对象间一对多的依赖关系，当一个对象的状态发生改变时，所有依赖于它的对象都得到通知并被自动更新
 * 举个栗子：
 * 假设有三个人，小美（女，22），小王和小李。小美很漂亮，小王和小李是两个程序猿，
 * 时刻关注着小美的一举一动。有一天，小美说了一句：“谁来陪我打游戏啊。”
 * 这句话被小王和小李听到了，结果乐坏了，蹭蹭蹭，没一会儿，小王就冲到小美家门口了，
 * 在这里，小美是被观察者，小王和小李是观察者，被观察者发出一条信息，然后观察者们进行相应的处理，
 */
public class Main {

    public static void main(String[] args) {
        Person xiaoLi = new XiaoLi();
        Person xiaoWang = new XiaoWang();

        XiaoMei xiaoMei = new XiaoMei();
        //小王和小李在小美那里都注册了一下
        xiaoMei.add(xiaoWang);
        xiaoMei.add(xiaoLi);

        //小美向小王和小李发送通知
        xiaoMei.send();
    }
}
